package com.jty.lib_base.data.source

import com.jty.lib_base.base.BaseBean

import com.jty.lib_base.data.bean.*
import io.reactivex.Observable
import okhttp3.RequestBody


/**
 * author: zhouyh
 * created on: 2021/5/11 5:11 下午
 * description:网络数据源
 */
interface HttpDataSource {

    fun login(requestBody: RequestBody):Observable<BaseBean<LoginBean>>

    fun getToken(grant_type:String,client_id:String,client_secret:String,
                 device_type:String,account: String, password: String)
    : Observable<BaseBean<TokenBean>>
    //获取验证码
    fun getCode(requestBody: RequestBody):Observable<BaseBean<String>>
    //重置密码
    fun rePassword(requestBody: RequestBody): Observable<BaseBean<Any?>>
    //获取用户信息
    fun getUserInfo():Observable<BaseBean<UserInfoBean>>
    //修改用户信息
    fun modifyUserInfo(requestBody: RequestBody):Observable<BaseBean<Any?>>
    //修改手机号码
    fun modifyPhone(requestBody: RequestBody):Observable<BaseBean<Any?>>
    //根据学段获取学科
    fun getSchoolPhaseSubjectList(requestBody: RequestBody):Observable<BaseBean<List<UserInfoBean>>>
    //修改密码
    fun modifyPassword(requestBody: RequestBody):Observable<BaseBean<Any?>>
    //学段查询
    fun querySection():Observable<BaseBean<List<SectionBean>>>
    //学科查询
    fun querySubject():Observable<BaseBean<List<SubjectBean>>>

    //获取老师笔
    fun getTeacherPen():Observable<BaseBean<TeacherPenBean>>

    //我的教研笔记
    fun pageBybookNote(requestBody: RequestBody):Observable<BaseBean<PageBybookNoteBean>>

    //我的教研笔记整本信息
    fun bookNoteByTeacherId(requestBody: RequestBody):Observable<BaseBean<List<GridPictureBean>>>

    // 获取笔记本整本信息
    fun getNoteTemplateInfo1(requestBody: RequestBody):Observable<BaseBean<BookNoteBean>>


    //我的教研笔记离线上传
    fun commitTeacherBookNote(requestBody: RequestBody):Observable<BaseBean<Any?>>

    //我的教研笔记在线上传
    fun commitTeacherBookNoteOnLine(requestBody: RequestBody):Observable<BaseBean<Any?>>

    //教师书写前书写记录确认
    fun createTeacherWriteRecord(requestBody: RequestBody):Observable<BaseBean<Any?>>

    //检查教师连接的mac 并返回上次连接地址
    fun checkTeacherMac(requestBody: RequestBody):Observable<BaseBean<CheckTeacherMacBean>>

    //获取笔记本单页信息
    fun getOneNoteTemplateInfo(requestBody: RequestBody):Observable<BaseBean<GridPictureBean>>

    //确认连接- 更新教师笔连接记录
    fun teacherConfirmConnect(requestBody: RequestBody):Observable<BaseBean<Any?>>

    //版本信息
    fun queryLastVersion(version: String):Observable<BaseBean<VersionInfoBean>>


    //教研tab
    fun getResearchTabData(requestBody: RequestBody):Observable<BaseBean<List<ResearchTabBean>>>
    //查询教研活动列表
    fun queryResearchActivity(requestBody: RequestBody):Observable<BaseBean<ResearchActivityListBean>>
    //教研活动详情
    fun getResearchActivityDetail(requestBody: RequestBody):Observable<BaseBean<ResearchDetailBean>>
    //教研活动参加人列表
    fun getResearchJoinPeople(requestBody: RequestBody):Observable<BaseBean<List<ResearchJoinPeopleBean>>>
    //教研活动报名
    fun joinResearchActivity(requestBody: RequestBody):Observable<BaseBean<Any>>
    //上传教研笔记
    fun uploadResearchNote(requestBody: RequestBody):Observable<BaseBean<Any>>
    //获取白板token和uuid
    fun getRoomUuidAndToken(requestBody: RequestBody):Observable<BaseBean<WhiteboardTokenBean>>
    //获取白板token
    fun getWhiteboardToken(uuid: String,requestBody: RequestBody):Observable<String>
    //获取直播token
    fun getRoomToken(requestBody: RequestBody):Observable<BaseBean<RoomTokenBean>>
    //删除教研活动笔记
    fun deleteResearchNote(requestBody: RequestBody):Observable<BaseBean<Any>>
    //分享照片
    fun sharePics(requestBody: RequestBody):Observable<BaseBean<String>>
    //获取活动笔记
    fun getRoomNote(requestBody: RequestBody):Observable<BaseBean<RoomNoteBean>>
    //获取直播状态
    fun getLiveState(requestBody: RequestBody):Observable<BaseBean<LiveStateBean>>

}